package org.patterns.structural.decorator;


public class Client {
    public static void main(String[] args) {
        {
            /* 创建基础构件对象(被装饰的原始对象) */
            Component component = new ListBox();

            /* 第一次装饰：为原始构件添加滚动条功能 */
            Component scrollBarDecorator = new ScrollBarDecorator(component);

            /* 第二次装饰：在已有滚动条功能基础上添加黑色边框功能（装饰顺序影响最终效果） */
            Component borderDecorator = new BlackBorderDecorator(scrollBarDecorator);

            /* 执行多层装饰后的显示方法，将依次调用所有装饰器的显示逻辑 */
            borderDecorator.display();
        }
    }
}